package com.xiaoshuidi.cloud.module.iot.service;

import com.xiaoshuidi.cloud.framework.common.pojo.PageParam;
import com.xiaoshuidi.cloud.framework.common.pojo.PageResult;
import com.xiaoshuidi.cloud.module.iot.controller.admin.face.vo.*;
import com.xiaoshuidi.cloud.module.iot.controller.app.face.vo.AppFaceDatabaseCreateReq;
import com.xiaoshuidi.cloud.module.iot.controller.app.face.vo.AppFaceDatabaseEditReq;
import com.xiaoshuidi.cloud.module.iot.controller.app.face.vo.AppFaceDatabasePageResp;

/**
 * 人脸库相关接口
 *
 * @Author Feng
 * @date 2023/6/25
 */
public interface FaceDatabaseService {

    /**
     * 人脸库 - 列表
     *
     * @param req
     * @return {@link PageResult}<{@link FaceDatabasePageResp}>
     */
    PageResult<FaceDatabasePageResp> page(FaceDatabasePageReq req);

    /**
     * app-人脸列表
     *
     * @return
     */
    PageResult<AppFaceDatabasePageResp> appPage(PageParam req);

    /**
     * 添加人脸信息
     *
     * @param req
     * @return
     */
    boolean create(FaceDatabaseCreateReq req);

    /**
     * 从app端添加人脸信息
     *
     * @param req
     * @return
     */
    boolean appCreate(AppFaceDatabaseCreateReq req);

    /**
     * 删除人脸信息
     *
     * @param id
     * @return
     */
    boolean remove(Long id);

    /**
     * 获取人脸信息
     *
     * @param id
     */
    FaceDatabaseResp get(Long id);

    /**
     * 审核操作
     *
     * @param req
     * @return
     */
    boolean approve(FaceDatabaseApproveReq req);

    /**
     * 根据ID修改
     *
     * @param req
     * @return
     */
    boolean edit(FaceDatabaseEditReq req);

    /**
     * app端 - 根据ID修改
     *
     * @param req
     * @return
     */
    boolean appEdit(AppFaceDatabaseEditReq req);

    /**
     * app - 租客人脸信息
     *
     * @return
     */
    AppFaceDatabasePageResp renterInfo();
}
